关于main形参的菜鸟问题````(VC++)

来源:百度知道 编辑:UC知道 时间:2024/05/22 01:13:47
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include <stdlib.h>
int main(int argc,char *argv[])
{
if(argc==2)
{
printf("%d-------%s",argc,argv[argc-1]);
return 0;
}else if(argc==3)
{
printf("%s\n\n\n",argv[argc-1]);
if(argv[argc-1]=="s" || argv[argc-1]=="S")
{
printf("TRUE");
return 0;
}else
{
printf("FALSE");
return 1;
}
}else{return 1;}
}

输入:

s.exe 100 回车
s.exe 100 s 回车
s.exe 100 S 回车

运行结果:

2-------100

s

FALSE

S

FALSE

为什么?哪里出错了?
if(argv[argc-1]=="s" || argv[argc-1]=="S") //这句有什么问题吗?

argv[argc-1]=="S"

字符串是不能这么比较的,如果这么比较,那只能是比较首地址

还是老老实实地一个字符一个字符比较吧。

加上一个#include <string> 应该可以这样比较 argv[argc-1]=="S"